package com.zfjt.web;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

/**
 * 文件上传
 * 
 * @author tang
 * @date 2017年4月11日 上午9:38:54
 */
@Controller
public class FileUploadController extends HttpServlet
{
	private static final long serialVersionUID = 1L;
	// 定义允许上传的文件扩展名
	//private String Ext_Name = "gif,jpg,jpeg,png,bmp,swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb,doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2";

	@RequestMapping("gotoFileUpload")
	public String gotoUploadFile()
	{
		return "file/fileUpload";
	}

 
//	多文件上传，如果需要上传多个文件，只需要在上传界面多加上传选项
	@RequestMapping("uploadFile") 
	 public String upload(@RequestParam MultipartFile[] myfiles,HttpServletRequest request) throws IOException {  
        for(MultipartFile file : myfiles){     
            //此处MultipartFile[]表明是多文件,如果是单文件MultipartFile就行了  
            if(file.isEmpty()){   
                System.out.println("文件未上传!");  
            }  
            else{  
                //得到上传的文件名  
                String fileName = file.getOriginalFilename();  
                //得到服务器项目发布运行所在地址  
                String path1 = request.getSession().getServletContext().getRealPath("upload")+File.separator;  
                //  此处未使用UUID来生成唯一标识,用日期做为标识  
                String path = path1+ new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+ fileName;  
                //查看文件上传路径,方便查找  
                System.out.println(path);  
                //把文件上传至path的路径  
                File localFile = new File(path);  
                file.transferTo(localFile);  
                }  
            }  
        return "file/uploadSucess";  
    }  
	
	
	/***  
     * 保存文件  
     *  
     * @param file  
     * @return  
	 * @throws IOException 
     */  
    public String saveFile(String name,HttpServletRequest request, MultipartFile file) {  
         //得到服务器项目发布运行所在地址  
         String filePath = request.getSession().getServletContext().getRealPath("static")+File.separator+"upload"+File.separator+name;  
         
        // 判断文件是否为空  
        if (!file.isEmpty()) {  
            try {  
                filePath = filePath+File.separator+ new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+file.getOriginalFilename();  
                //查看文件上传路径,方便查找  
                System.out.println("添加图片"+filePath);  
                File saveDir = new File(filePath);  
                if (!saveDir.getParentFile().exists())  
                    saveDir.getParentFile().mkdirs();  
                // 转存文件  
                file.transferTo(saveDir);  
                return filePath;  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
        return filePath;  
    }
    
    public String upload2( MultipartFile[] myfiles,HttpServletRequest request) throws IOException {
        String result="文件未上传";
        for(MultipartFile file : myfiles){
            //此处MultipartFile[]表明是多文件,如果是单文件MultipartFile就行了
            if(file.isEmpty()){
                System.out.println("文件未上传!");
            }
            else{
                //得到上传的文件名
                String fileName = file.getOriginalFilename();
                //得到服务器项目发布运行所在地址
                String path1 = request.getSession().getServletContext().getRealPath("upload")+File.separator;  
                //  此处未使用UUID来生成唯一标识,用日期做为标识
                String time=new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
                String path = path1+ fileName+"_"+time;
                //查看文件上传路径,方便查找
                System.out.println(path);
                //把文件上传至path的路径
                File localFile = new File(path);
                file.transferTo(localFile);
                result="文件上传成功";
            }
        }
        return result;
    }

}
